CSE/CS101:C++ 编程抽象思维 / Spring 2023

公告


课程介绍 - Course Description

《CSE/CS101:C++ 编程抽象思维》使用 C++ 编程语言介绍高级编程技术。本课程从零开始编写讲义并精心组织相关知识点的引入,从最基础的编程概念逐步深入,重点讲解了递归思维、算法分析、数据抽象,以及一些经典的数据结构和算法实现。

本课程参考了斯坦福大学 CS106B: Programming Abstractions 课程的教学目标和大纲(没看错!价值超 $4,200.00 的课程)。编程不是记忆一些语法规则,完成一些简单的过程代码,而是如何利用计算机解决难题。本课程是关于从“如何编写程序”过渡到“如何解决计算机问题”,从“如何写对程序”过渡到“如何写好程序”。

完成本课程后,我们希望您能实现以下学习目标:

  • 使用编程来解决现实世界中的复杂问题
  • 认识并理解计算机科学中通用的抽象思维
  • 利用算法推理和递归技能,可以将复杂的问题分解为较小的子问题
  • 在使用或设计数据结构和算法时,能够评估设计上的权衡

除此之外,通过本课程的训练,您将获得足够强大的调试能力,并体会到测试驱动开发(TDD)的优势。

本期亮点

  • 维护并升级课本配套 C++ 库,尝试迁移到 C++17 标准。
  • 回归课本,尽最大努力带领大家完成课本上的习题。
  • 增加 CMake 的讲解,课程结束后有能力开发自己的库、或引入第三方库学习研究。
  • 适当增加 CS106L 相关的内容。
  • 若精力允许,也会尝试使用课本配套库开发相应的作业。

面向对象

本课程主要面向传统工科朋友,苦于编程学习迟迟不得要领;或是想掌握斯坦福 CS106B 的编程知识,却总是无法独立完成的朋友。

本课程不适合已经学完一门数据结构或算法课程的朋友;不适合单纯想练习 C++ 语法技巧的朋友,本课程用到的语法技巧仅仅算是 C++ 入门。

课程安排

课程采用斯坦福风格,主要涉及以下几个主题:

  • C++ 基础知识
  • 抽象数据结构
  • 递归
  • 类和面向对象编程
  • 内存管理
  • 经典抽象数据类型
  • 经典高级算法

建议学习时间的投入不低于 150 个小时。

授课方式

暂定使用 QQ 群课堂功能,支持回放。

进阶课程

往期课程 - Previous Offerings


讲师 - Instructors

恐龙老师

Teaching Assistants